package com.xbongbong.pro.statistics.pojo.vo;

import com.xbongbong.paas.toolbox.helper.PageHelper;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.pro.bi.commons.pojo.AggFieldPojo;
import com.xbongbong.pro.statistic.result.pojo.AggsBucketsPojo;
import com.xbongbong.pro.statistic.result.pojo.FieldAttrPojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;
import java.util.Map;

/**
 * 生成sqlVO
 * @ClassName GenerateSqlVO
 * @Author 梁鲁江
 * 创建时间 2021/11/3 21:22
 * 修改时间  2021/11/3 21:22
 **/
@Setter
@Getter
@ToString
public class GenerateSqlVO extends BaseVO {
    /**
     * sql载体
     */
    private  StringBuffer stringBufferSql;
    /**
     * 统计表的总计sql
     */
    private  String sumTotalSql;
    /**
     * 统计表的右侧总计sql
     */
    private String sumRightTotalSql;
    /**
     * 统计表的小计sql
     */
    private String subTotalSql;

    /**
     * 统计表的 总计的总计sql
     */
    private String totalOfTotalSql;
    /**
     * 分页
     */
    private PageHelper pageHelper;
    /**
     * 汇总等取值字段的对应关系
     */
    Map<String, AggFieldPojo> aggFieldMap;
    /**
     * 汇总字段实体映射
     */
    private Map<String, FieldAttrPojo> summaryAttrMap;
    /**
     * 副指标key
     */
    private List<String> secondTargetKey;
    /**
     * 查询表的汇总
     */
    private List<AggsBucketsPojo> aggList;
    /**
     * boardjson,用于关联产品渲染
     **/

    private String jsonStr;

    /**
     * 子查询外层含有count函数的计算字段SQL数组（只存使用count函数的计算字段，存在count公式时使用）
     */
    List<String> subQuerySqlOfCountList;
    /**
     * 子查询外层column SQL数组（全部column，包含分组字段，存在count公式时使用）
     */
    String subSqlOfCount;
    /**
     * 子查询内层完整SQL（存在count公式时使用）
     */
    String subCompleteSqlOfCount;
    /**
     * 子查询外层计算字段排序SQL容器（存在count公式时使用）
     */
    String subOrderSqlOfCount;

    /**
     * 普通汇总字段+非count函数计算字段（存在count公式时使用）
     */
    List<String> summaryColumnAlisa;
}
